/*
 * @Autor Wei
 * @Date 2020-02-29 17:55:44
 * @LastEditors Wei
 * @LastEditTime 2020-06-10 15:33:04
 */
var express = require("express");
var router = express.Router();
var fs = require("fs");
var multer = require("multer");
let path = require("path");

// 使用硬盘存储模式设置存放接收到的文件的路径以及文件名
var storage = multer.diskStorage({
  destination: function(req, file, cb) {
    // 接收到文件后输出的保存路径（若不存在则需要创建）
    cb(null, path.join(__dirname, "../public/images/fwImg/"));
  },
  filename: function(req, file, cb) {
    // 将保存文件名设置为 时间戳 + 文件原始名，比如 151342376785-123.jpg
    console.log(file);
    let extname = file.mimetype.split("/")[1];
    let imgname =
      Date.now() +
      parseInt(Math.random() * 999) +
      parseInt(Math.random() * 2222);
    let keepname = imgname + "." + extname;
    cb(null, keepname);
  }
});

// 创建文件夹
var createFolder = function(folder) {
  try {
    // 测试 path 指定的文件或目录的用户权限,我们用来检测文件是否存在
    // 如果文件路径不存在将会抛出错误"no such file or directory"
    fs.accessSync(folder);
  } catch (e) {
    // 文件夹不存在，以同步的方式创建文件目录。
    fs.mkdirSync(folder);
  }
};

var uploadFolder = path.join(__dirname, "../public/images/fwImg/");
createFolder(uploadFolder);

// 创建 multer 对象
var upload = multer({
  storage: storage
});

/* POST upload listing. */
// upload.single('upload')意思是告诉multer只接收name是upload的单个文件.
// 多个文件实例array
router.post("/api/v1/fwImg", upload.array("file", 10), function(
  req,
  res,
  next
) {
  // console.log("req",req)
  console.log("req.body", req.body);
  try {
    var files = req.files;
    // files.forEach(file => {
    //   console.log("原数据", file);
    //   console.log("文件类型：%s", file.mimetype);
    //   console.log("原始文件名：%s", file.originalname);
    //   console.log("文件大小：%s", file.size);
    //   console.log("文件保存路径：%s", file.path);
    // });
    // 接收文件成功后返回数据给前端
    res.json({
      code: 100,
      url: "https://jifen.zhportinfo.com/images/fwImg/" + files[0].filename,
      name: files[0].filename
    });
  } catch (error) {
    console.log(error);
    res.json({
      code: "0"
    });
  }
});

// 导出模块（在 app.js 中引入）
module.exports = router;
